package com.liruo.enumconverter.core.gson;

import com.google.gson.JsonElement;
import com.google.gson.JsonPrimitive;
import com.google.gson.JsonSerializationContext;
import com.google.gson.JsonSerializer;
import com.liruo.enumconverter.model.SourceEnum;

import java.lang.reflect.Type;

/**
 * @Author:liruo
 * @Date:2023-02-22-20:35:40
 * @Desc
 */
public class SourceEnumGsonSerializer implements JsonSerializer<SourceEnum<?>> {
    /**
     *
     * @param type 传入的类的运行类型
     * @param jsonSerializationContext 相当于使用gson，但是只能序列化
     * @return
     */
    @Override
    public JsonElement serialize(SourceEnum<?> sourceEnum, Type type, JsonSerializationContext jsonSerializationContext) {
        Object source = sourceEnum.source();
        return source instanceof Integer ? new JsonPrimitive((Integer)source) : new JsonPrimitive((String)source);
    }
}
